namespace DotNetNuke.UI.WebControls
{
    using System;
    using System.Collections;
    using System.Xml;

    internal class DNNNodeEnumerator : IEnumerator
    {
        private int m_intCursor;
        private XmlNode m_objXMLNode;

        public DNNNodeEnumerator(XmlNode objRoot)
        {
            this.m_objXMLNode = objRoot;
            this.m_intCursor = -1;
        }

        public bool MoveNext()
        {
            if (this.m_intCursor < this.m_objXMLNode.ChildNodes.Count)
            {
                this.m_intCursor++;
            }
            if (this.m_intCursor == this.m_objXMLNode.ChildNodes.Count)
            {
                return false;
            }
            return true;
        }

        public void Reset()
        {
            this.m_intCursor = -1;
        }

        public object Current
        {
            get
            {
                if ((this.m_intCursor < 0) | (this.m_intCursor == this.m_objXMLNode.ChildNodes.Count))
                {
                    throw new InvalidOperationException();
                }
                return new DNNNode(this.m_objXMLNode.ChildNodes[this.m_intCursor]);
            }
        }

        //public object System.Collections.IEnumerator.Current
        //{
        //    get
        //    {
        //        if ((this.m_intCursor < 0) | (this.m_intCursor == this.m_objXMLNode.ChildNodes.Count))
        //        {
        //            throw new InvalidOperationException();
        //        }
        //        return new DNNNode(this.m_objXMLNode.ChildNodes[this.m_intCursor]);
        //    }
        //}
    }
}

